/************************* 版权声明 *********************************
 * 
 * 版权所有：Apache License 2.0
 * 
 ************************* 版本声明 *********************************
 *@since jdk1.5
 *@version 0.1
 ************************* 变更记录 *********************************
 *
 * 创建者：bijiqiang Email:bijiqiang@gmail.com   创建日期： 2010-1-18
 * 创建记录：创建类结构。
 * 
 * 修改者：       修改日期：
 * 修改记录：
 *
 * 修改者：       修改日期：
 * 修改记录：
 * ……
 ************************* To  Do *********************************
 *
 * 1、实现所有未实现的方法（抛出UnsupportedOperationException的方法）。
 * 
 ************************* 随   笔 *********************************
 *
 * 
 * 
 ******************************************************************
 */

package com.realgodo.site.service;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springside.modules.orm.Page;
import org.springside.modules.orm.hibernate.DefaultEntityManager;

import com.realgodo.site.entity.vocation.UserVocation;

@Service
public class UserVocationManager extends
		DefaultEntityManager<UserVocation, Long> {

	@Autowired
	protected SessionFactory sessionFactory;

	@SuppressWarnings("unchecked")
	public UserVocation getMajorUserVocation(Long userId) {

		UserVocation userVocation = null;
		Criteria c = sessionFactory.getCurrentSession().createCriteria(
				UserVocation.class);
		if (null != userId) {
			c.add(Restrictions.eq("user.id", userId));
		}
		List<UserVocation> userVocations = c.list();
		if (null != userVocations && userVocations.size() != 0) {
			userVocation = userVocations.get(0);
		}

		return userVocation;
	}
	
	/**
	 * 根據職業獲取用戶
	 * @param pages
	 * @param vocationId
	 * @return
	 */
	public Page<UserVocation> getUserByVocations(Page<UserVocation> pages ,Long vocationId){
		Criteria c = sessionFactory.getCurrentSession().createCriteria(
				UserVocation.class);
		c.add(Restrictions.eq("vocation.id", vocationId));
		return this.entityDao.findByCriteria(pages, c);
	}
}
